home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / sun / volume2 / tahoe-systat / patch01 next >
Encoding:
Internet Message Format  |  1990-10-23  |  23.9 KB

  1. Path: uunet!zaphod.mps.ohio-state.edu!usc!apple!rutgers!aramis.rutgers.edu!mcgrew
  2. From: mcgrew@aramis.rutgers.edu (Charles Mcgrew)
  3. Newsgroups: comp.sources.sun
  4. Subject: v02i033:  Tahoe "systat" patches for SunOS
  5. Message-ID: <Oct.23.18.16.03.1990.16138@aramis.rutgers.edu>
  6. Date: 23 Oct 90 22:16:04 GMT
  7. Organization: Rutgers Univ., New Brunswick, N.J.
  8. Lines: 887
  9. Approved: mcgrew@aramis.rutgers.edu
  10.  
  11. Submitted-by: budd@bu-it.bu.edu (Phil Budne)
  12. Posting-number: Volume 2, Issue 33
  13. Archive-name: tahoe-systat/patch01
  14.  
  15.  
  16.  
  17.  
  18. Here are diffs to the BSD 4.3 Tahoe "systat" program for SunOS 4.0.3
  19.  
  20. [NOTE:  This requires that you have the BSD 4.3 Tahoe source. -CWM]
  21.  
  22. #! /bin/sh
  23. # This is a shell archive.  Remove anything before this line, then unpack
  24. # it by saving it into a file and typing "sh file".  To overwrite existing
  25. # files, type "sh file -c".  You can also feed this as standard input via
  26. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  27. # will see the following message at the end:
  28. #        "End of shell archive."
  29. # Contents:  README Makefile.diff cmdtab.c.diff disks.c.diff
  30. #   fetch.c.diff iostat.c.diff keyboard.c.diff main.c.diff pigs.c.diff
  31. #   swap.c.diff systat.h.diff vmstat.c.diff
  32. # Wrapped by budd@bu-it on Fri Jun 15 12:14:54 1990
  33. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  34. if test -f README -a "${1}" != "-c" ; then 
  35.   echo shar: Will not over-write existing file \"README\"
  36. else
  37. echo shar: Extracting \"README\" \(699 characters\)
  38. sed "s/^X//" >README <<'END_OF_README'
  39. XDiffs to BSD 4.3 Tahoe "systat" for SunOS 4.0.3
  40. X
  41. XThis is a "naive" port.  I have not gone to great lengths to remove
  42. Xitems not valid on the Sun (ie; "Soft" interrupt count, VM counters
  43. Xnot reported by new VM system), except for removing the "swap" display
  44. Xand the inode cache information from the "vmstat" display.  I have not
  45. XADDED any new information displays.  I have run it on Sun-3's and 4's.
  46. X386i's will need the _'s removed from the nlist names.
  47. X
  48. XThe information displayed is to be considered suspect, and as the man
  49. Xpage says "The whole thing is pretty hokey and was included in the
  50. Xdistribution under serious duress."
  51. X
  52. XPhil Budne, Boston University
  53. X(budd@bu-it.bu.edu)
  54. XFriday June 15, 1990
  55. END_OF_README
  56. if test 699 -ne `wc -c <README`; then
  57.     echo shar: \"README\" unpacked with wrong size!
  58. fi
  59. # end of overwriting check
  60. fi
  61. if test -f Makefile.diff -a "${1}" != "-c" ; then 
  62.   echo shar: Will not over-write existing file \"Makefile.diff\"
  63. else
  64. echo shar: Extracting \"Makefile.diff\" \(757 characters\)
  65. sed "s/^X//" >Makefile.diff <<'END_OF_Makefile.diff'
  66. X*** Makefile.orig    Mon Jun 11 15:32:58 1990
  67. X--- Makefile    Tue Jun 12 19:03:17 1990
  68. X***************
  69. X*** 5,13 ****
  70. X  #
  71. X  #    @(#)Makefile    5.4    (Berkeley)    6/16/87
  72. X  #
  73. X! CFLAGS=    -O
  74. X  LIBC=    /lib/libc.a
  75. X! LIBS=    -lcurses -ltermlib -lm
  76. X  SRCS=    cmds.c cmdtab.c disks.c fetch.c iostat.c keyboard.c vmstat.c main.c \
  77. X      mbufs.c netcmds.c netstat.c pigs.c swap.c
  78. X  OBJS=    cmds.o cmdtab.o disks.o fetch.o iostat.o keyboard.o vmstat.o main.o \
  79. X--- 5,13 ----
  80. X  #
  81. X  #    @(#)Makefile    5.4    (Berkeley)    6/16/87
  82. X  #
  83. X! CFLAGS=    -g
  84. X  LIBC=    /lib/libc.a
  85. X! LIBS=    -lcurses -ltermlib -lm -lkvm
  86. X  SRCS=    cmds.c cmdtab.c disks.c fetch.c iostat.c keyboard.c vmstat.c main.c \
  87. X      mbufs.c netcmds.c netstat.c pigs.c swap.c
  88. X  OBJS=    cmds.o cmdtab.o disks.o fetch.o iostat.o keyboard.o vmstat.o main.o \
  89. END_OF_Makefile.diff
  90. if test 757 -ne `wc -c <Makefile.diff`; then
  91.     echo shar: \"Makefile.diff\" unpacked with wrong size!
  92. fi
  93. # end of overwriting check
  94. fi
  95. if test -f cmdtab.c.diff -a "${1}" != "-c" ; then 
  96.   echo shar: Will not over-write existing file \"cmdtab.c.diff\"
  97. else
  98. echo shar: Extracting \"cmdtab.c.diff\" \(858 characters\)
  99. sed "s/^X//" >cmdtab.c.diff <<'END_OF_cmdtab.c.diff'
  100. X*** cmdtab.c.orig    Mon Jun 11 15:32:59 1990
  101. X--- cmdtab.c    Mon Jun 11 15:35:26 1990
  102. X***************
  103. X*** 13,21 ****
  104. X--- 13,23 ----
  105. X  int     showpigs(), fetchpigs(), labelpigs();
  106. X  int    initpigs(), closepigs();
  107. X  WINDOW    *openpigs();
  108. X+ #ifndef sun
  109. X  int     showswap(), fetchswap(), labelswap();
  110. X  int    initswap(), closeswap();
  111. X  WINDOW    *openswap();
  112. X+ #endif
  113. X  int    showmbufs(), fetchmbufs(), labelmbufs();
  114. X  int    initmbufs(), closembufs();
  115. X  WINDOW    *openmbufs();
  116. X***************
  117. X*** 33,41 ****
  118. X--- 35,45 ----
  119. X          { "pigs",    showpigs,    fetchpigs,    labelpigs,
  120. X        initpigs,    openpigs,    closepigs,    0,
  121. X        CF_LOADAV },
  122. X+ #ifndef sun
  123. X          { "swap",    showswap,    fetchswap,    labelswap,
  124. X        initswap,    openswap,    closeswap,    0,
  125. X        CF_LOADAV },
  126. X+ #endif
  127. X          { "mbufs",    showmbufs,    fetchmbufs,    labelmbufs,
  128. X        initmbufs,    openmbufs,    closembufs,    0,
  129. X        CF_LOADAV },
  130. END_OF_cmdtab.c.diff
  131. if test 858 -ne `wc -c <cmdtab.c.diff`; then
  132.     echo shar: \"cmdtab.c.diff\" unpacked with wrong size!
  133. fi
  134. # end of overwriting check
  135. fi
  136. if test -f disks.c.diff -a "${1}" != "-c" ; then 
  137.   echo shar: Will not over-write existing file \"disks.c.diff\"
  138. else
  139. echo shar: Extracting \"disks.c.diff\" \(1752 characters\)
  140. sed "s/^X//" >disks.c.diff <<'END_OF_disks.c.diff'
  141. X*** disks.c.orig    Mon Jun 11 15:32:59 1990
  142. X--- disks.c    Tue Jun 12 19:04:05 1990
  143. X***************
  144. X*** 15,20 ****
  145. X--- 15,21 ----
  146. X  static struct nlist nlst[] = {
  147. X  #define    X_DK_NDRIVE    0
  148. X      { "_dk_ndrive" },
  149. X+ #ifndef sun
  150. X  #define    X_DK_MSPW    1
  151. X      { "_dk_mspw" },
  152. X  #ifdef vax
  153. X***************
  154. X*** 23,36 ****
  155. X  #define    X_UBDINIT    (X_DK_MSPW+2)
  156. X      { "_ubdinit" },
  157. X  #endif
  158. X- #ifdef sun
  159. X- #define    X_MBDINIT    (X_DK_MSPW+1)
  160. X-     { "_mbdinit" },
  161. X- #endif
  162. X  #ifdef tahoe
  163. X  #define    X_VBDINIT    (X_DK_MSPW+1)
  164. X      { "_vbdinit" },
  165. X  #endif
  166. X      { "" },
  167. X  };
  168. X  
  169. X--- 24,39 ----
  170. X  #define    X_UBDINIT    (X_DK_MSPW+2)
  171. X      { "_ubdinit" },
  172. X  #endif
  173. X  #ifdef tahoe
  174. X  #define    X_VBDINIT    (X_DK_MSPW+1)
  175. X      { "_vbdinit" },
  176. X  #endif
  177. X+ #else                    /* is sun */
  178. X+ #define    X_MBDINIT    (X_DK_NDRIVE+1)
  179. X+     { "_mbdinit" },
  180. X+ #define    X_DK_BPS    (X_MBDINIT+1)
  181. X+     { "_dk_bps" },
  182. X+ #endif                    /* is sun */
  183. X      { "" },
  184. X  };
  185. X  
  186. X***************
  187. X*** 40,45 ****
  188. X--- 43,51 ----
  189. X      register char *cp;
  190. X      static int once = 0;
  191. X      static char buf[1024];
  192. X+ # ifdef sun
  193. X+     long *bps;
  194. X+ # endif
  195. X  
  196. X      if (once)
  197. X          return(1);
  198. X***************
  199. X*** 54,61 ****
  200. X--- 60,79 ----
  201. X          return(0);
  202. X      }
  203. X      dk_mspw = (float *)calloc(dk_ndrive, sizeof (float));
  204. X+ #ifdef sun
  205. X+     bps = (long *)calloc(dk_ndrive, sizeof (long));
  206. X+     lseek(kmem, nlst[X_DK_BPS].n_value, L_SET);
  207. X+     read(kmem, bps, dk_ndrive * sizeof (long));
  208. X+     for( i = 0; i < dk_ndrive; i++ )
  209. X+         if( bps[i] > 0 )
  210. X+         dk_mspw[i] = 1.0 / bps[i];
  211. X+         else
  212. X+         dk_mspw[i] = 0.0;
  213. X+     free( bps );
  214. X+ #else    
  215. X      lseek(kmem, nlst[X_DK_MSPW].n_value, L_SET);
  216. X      read(kmem, dk_mspw, dk_ndrive * sizeof (float));
  217. X+ #endif
  218. X      dr_name = (char **)calloc(dk_ndrive, sizeof (char *));
  219. X      dk_select = (int *)calloc(dk_ndrive, sizeof (int));
  220. X      for (cp = buf, i = 0; i < dk_ndrive; i++) {
  221. END_OF_disks.c.diff
  222. if test 1752 -ne `wc -c <disks.c.diff`; then
  223.     echo shar: \"disks.c.diff\" unpacked with wrong size!
  224. fi
  225. # end of overwriting check
  226. fi
  227. if test -f fetch.c.diff -a "${1}" != "-c" ; then 
  228.   echo shar: Will not over-write existing file \"fetch.c.diff\"
  229. else
  230. echo shar: Extracting \"fetch.c.diff\" \(763 characters\)
  231. sed "s/^X//" >fetch.c.diff <<'END_OF_fetch.c.diff'
  232. X*** fetch.c.orig    Mon Jun 11 15:32:59 1990
  233. X--- fetch.c    Tue Jun 12 19:05:21 1990
  234. X***************
  235. X*** 57,67 ****
  236. X--- 57,72 ----
  237. X          return (namp);
  238. X  }
  239. X  
  240. X+ #ifdef sun
  241. X+ struct user *up;
  242. X+ #define u    (*up)
  243. X+ #else
  244. X  union {
  245. X          struct  user user;
  246. X          char    upages[UPAGES][NBPG];
  247. X  } user;
  248. X  #define u       user.user
  249. X+ #endif
  250. X  
  251. X  char *
  252. X  getcmd(pid, mproc)
  253. X***************
  254. X*** 84,89 ****
  255. X--- 89,102 ----
  256. X          return (cmd);
  257. X  }
  258. X  
  259. X+ #ifdef sun
  260. X+ getu( pp )
  261. X+     struct proc *pp;
  262. X+ {
  263. X+     up = kvm_getu( kvm, pp );
  264. X+     return( up != NULL );
  265. X+ }
  266. X+ #else
  267. X  static    int argaddr;
  268. X  static    int pcbpf;
  269. X  
  270. X***************
  271. X*** 138,143 ****
  272. X--- 151,157 ----
  273. X          }
  274. X          return (1);
  275. X  }
  276. X+ #endif
  277. X  
  278. X  klseek(fd, loc, off)
  279. X          int fd;
  280. END_OF_fetch.c.diff
  281. if test 763 -ne `wc -c <fetch.c.diff`; then
  282.     echo shar: \"fetch.c.diff\" unpacked with wrong size!
  283. fi
  284. # end of overwriting check
  285. fi
  286. if test -f iostat.c.diff -a "${1}" != "-c" ; then 
  287.   echo shar: Will not over-write existing file \"iostat.c.diff\"
  288. else
  289. echo shar: Extracting \"iostat.c.diff\" \(1208 characters\)
  290. sed "s/^X//" >iostat.c.diff <<'END_OF_iostat.c.diff'
  291. X*** iostat.c.orig    Mon Jun 11 15:32:59 1990
  292. X--- iostat.c    Tue Jun 12 18:54:50 1990
  293. X***************
  294. X*** 45,50 ****
  295. X--- 45,51 ----
  296. X          { "_dk_seek" },
  297. X  #define X_CP_TIME       5
  298. X          { "_cp_time" },
  299. X+ #if 0
  300. X  #ifdef vax
  301. X  #define X_MBDINIT       (X_CP_TIME+1)
  302. X          { "_mbdinit" },
  303. X***************
  304. X*** 55,60 ****
  305. X--- 56,62 ----
  306. X  #define    X_VBDINIT    (X_CP_TIME+1)
  307. X      { "_vbdinit" },
  308. X  #endif
  309. X+ #endif                    /* if 0 */
  310. X          { "" },
  311. X  };
  312. X  
  313. X***************
  314. X*** 314,325 ****
  315. X          if (v > colwidth) {
  316. X                  sprintf(buf, "%4.1f", val);
  317. X                  k -= strlen(buf);
  318. X!                 while (k--)
  319. X                          waddch(wnd, 'X');
  320. X                  waddstr(wnd, buf);
  321. X                  return;
  322. X          }
  323. X!         while (k--)
  324. X                  waddch(wnd, 'X');
  325. X          wclrtoeol(wnd);
  326. X  }
  327. X--- 316,327 ----
  328. X          if (v > colwidth) {
  329. X                  sprintf(buf, "%4.1f", val);
  330. X                  k -= strlen(buf);
  331. X!                 while (k-- > 0)
  332. X                          waddch(wnd, 'X');
  333. X                  waddstr(wnd, buf);
  334. X                  return;
  335. X          }
  336. X!         while (k-- > 0)
  337. X                  waddch(wnd, 'X');
  338. X          wclrtoeol(wnd);
  339. X  }
  340. END_OF_iostat.c.diff
  341. if test 1208 -ne `wc -c <iostat.c.diff`; then
  342.     echo shar: \"iostat.c.diff\" unpacked with wrong size!
  343. fi
  344. # end of overwriting check
  345. fi
  346. if test -f keyboard.c.diff -a "${1}" != "-c" ; then 
  347.   echo shar: Will not over-write existing file \"keyboard.c.diff\"
  348. else
  349. echo shar: Extracting \"keyboard.c.diff\" \(292 characters\)
  350. sed "s/^X//" >keyboard.c.diff <<'END_OF_keyboard.c.diff'
  351. X*** keyboard.c.orig    Mon Jun 11 15:32:59 1990
  352. X--- keyboard.c    Tue Jun 12 19:09:44 1990
  353. X***************
  354. X*** 15,20 ****
  355. X--- 15,25 ----
  356. X  #include "systat.h"
  357. X  #include <ctype.h>
  358. X  
  359. X+ #ifdef sun
  360. X+ #undef CTRL
  361. X+ #define CTRL(c) ((c)-'a'+1)
  362. X+ #endif
  363. X+ 
  364. X  keyboard()
  365. X  {
  366. X          char ch, line[80];
  367. END_OF_keyboard.c.diff
  368. if test 292 -ne `wc -c <keyboard.c.diff`; then
  369.     echo shar: \"keyboard.c.diff\" unpacked with wrong size!
  370. fi
  371. # end of overwriting check
  372. fi
  373. if test -f main.c.diff -a "${1}" != "-c" ; then 
  374.   echo shar: Will not over-write existing file \"main.c.diff\"
  375. else
  376. echo shar: Extracting \"main.c.diff\" \(2752 characters\)
  377. sed "s/^X//" >main.c.diff <<'END_OF_main.c.diff'
  378. X*** main.c.orig    Mon Jun 11 15:32:58 1990
  379. X--- main.c    Thu Jun 14 11:41:35 1990
  380. X***************
  381. X*** 47,52 ****
  382. X--- 47,55 ----
  383. X          int argc;
  384. X          char **argv;
  385. X  {
  386. X+ # ifdef sun
  387. X+     long lccpu;
  388. X+ # endif
  389. X  
  390. X      argc--, argv++;
  391. X      while (argc > 0) {
  392. X***************
  393. X*** 90,95 ****
  394. X--- 93,106 ----
  395. X          perror(swapf);
  396. X          exit(1);
  397. X      }
  398. X+ # ifdef sun
  399. X+     kvm = kvm_open( NULL, NULL, NULL, O_RDONLY, "systat" );
  400. X+     if (kvm == NULL) {
  401. X+         perror("kvm");
  402. X+         exit(1);
  403. X+     }
  404. X+ # endif
  405. X+ 
  406. X          signal(SIGINT, die);
  407. X          signal(SIGQUIT, die);
  408. X          signal(SIGTERM, die);
  409. X***************
  410. X*** 115,121 ****
  411. X--- 126,137 ----
  412. X  
  413. X          gethostname(hostname, sizeof (hostname));
  414. X          lseek(kmem, nlst[X_CCPU].n_value, L_SET);
  415. X+ #ifdef sun
  416. X+         read(kmem, &lccpu, sizeof (ccpu));
  417. X+     ccpu = (double) lccpu;
  418. X+ #else
  419. X          read(kmem, &ccpu, sizeof (ccpu));
  420. X+ #endif
  421. X          lccpu = log(ccpu);
  422. X      hz = getw(nlst[X_HZ].n_value);
  423. X      phz = getw(nlst[X_PHZ].n_value);
  424. X***************
  425. X*** 164,171 ****
  426. X      read(kmem, avenrun, sizeof (avenrun));
  427. X          (*curcmd->c_fetch)();
  428. X      if (curcmd->c_flags & CF_LOADAV) {
  429. X!         j = 5.0*avenrun[0] + 0.5;
  430. X!         dellave -= avenrun[0];
  431. X          if (dellave >= 0.0)
  432. X              c = '<';
  433. X          else {
  434. X--- 180,187 ----
  435. X      read(kmem, avenrun, sizeof (avenrun));
  436. X          (*curcmd->c_fetch)();
  437. X      if (curcmd->c_flags & CF_LOADAV) {
  438. X!         j = 5.0*FSC(avenrun[0]) + 0.5;
  439. X!         dellave -= FSC(avenrun[0]);
  440. X          if (dellave >= 0.0)
  441. X              c = '<';
  442. X          else {
  443. X***************
  444. X*** 174,185 ****
  445. X          }
  446. X          if (dellave < 0.1)
  447. X              c = '|';
  448. X!         dellave = avenrun[0];
  449. X          wmove(wload, 0, 0); wclrtoeol(wload);
  450. X          for (i = (j > 50) ? 50 : j; i > 0; i--)
  451. X              waddch(wload, c);
  452. X          if (j > 50)
  453. X!             wprintw(wload, " %4.1f", avenrun[0]);
  454. X      }
  455. X          (*curcmd->c_refresh)();
  456. X      if (curcmd->c_flags & CF_LOADAV)
  457. X--- 190,201 ----
  458. X          }
  459. X          if (dellave < 0.1)
  460. X              c = '|';
  461. X!         dellave = FSC(avenrun[0]);
  462. X          wmove(wload, 0, 0); wclrtoeol(wload);
  463. X          for (i = (j > 50) ? 50 : j; i > 0; i--)
  464. X              waddch(wload, c);
  465. X          if (j > 50)
  466. X!             wprintw(wload, " %4.1f", FSC(avenrun[0]));
  467. X      }
  468. X          (*curcmd->c_refresh)();
  469. X      if (curcmd->c_flags & CF_LOADAV)
  470. X***************
  471. X*** 192,203 ****
  472. X  
  473. X  load()
  474. X  {
  475. X      double    avenrun[3];
  476. X! 
  477. X      lseek(kmem, nlst[X_AVENRUN].n_value, L_SET);
  478. X      read(kmem, avenrun, sizeof (avenrun));
  479. X      mvprintw(CMDLINE, 0, "%4.1f %4.1f %4.1f",
  480. X!         avenrun[0], avenrun[1], avenrun[2]);
  481. X      clrtoeol();
  482. X  }
  483. X  
  484. X--- 208,222 ----
  485. X  
  486. X  load()
  487. X  {
  488. X+ #ifdef sun
  489. X+     long    avenrun[3];
  490. X+ #else
  491. X      double    avenrun[3];
  492. X! #endif
  493. X      lseek(kmem, nlst[X_AVENRUN].n_value, L_SET);
  494. X      read(kmem, avenrun, sizeof (avenrun));
  495. X      mvprintw(CMDLINE, 0, "%4.1f %4.1f %4.1f",
  496. X!          FSC(avenrun[0]), FSC(avenrun[1]), FSC(avenrun[2]));
  497. X      clrtoeol();
  498. X  }
  499. X  
  500. END_OF_main.c.diff
  501. if test 2752 -ne `wc -c <main.c.diff`; then
  502.     echo shar: \"main.c.diff\" unpacked with wrong size!
  503. fi
  504. # end of overwriting check
  505. fi
  506. if test -f pigs.c.diff -a "${1}" != "-c" ; then 
  507.   echo shar: Will not over-write existing file \"pigs.c.diff\"
  508. else
  509. echo shar: Extracting \"pigs.c.diff\" \(1715 characters\)
  510. sed "s/^X//" >pigs.c.diff <<'END_OF_pigs.c.diff'
  511. X*** pigs.c.orig    Mon Jun 11 15:32:57 1990
  512. X--- pigs.c    Thu Jun 14 11:35:50 1990
  513. X***************
  514. X*** 149,160 ****
  515. X          { "_proc" },
  516. X  #define X_NPROC         1
  517. X          { "_nproc" },
  518. X! #define X_USRPTMAP      2
  519. X          { "_Usrptmap" },
  520. X! #define X_USRPT         3
  521. X          { "_usrpt" },
  522. X! #define X_CPTIME    4
  523. X!     { "_cp_time" },
  524. X          { "" }
  525. X  };
  526. X  
  527. X--- 149,162 ----
  528. X          { "_proc" },
  529. X  #define X_NPROC         1
  530. X          { "_nproc" },
  531. X! #define X_CPTIME    2
  532. X!     { "_cp_time" },
  533. X! #ifndef sun
  534. X! #define X_USRPTMAP      3
  535. X          { "_Usrptmap" },
  536. X! #define X_USRPT         4
  537. X          { "_usrpt" },
  538. X! # endif
  539. X          { "" }
  540. X  };
  541. X  
  542. X***************
  543. X*** 174,183 ****
  544. X--- 176,187 ----
  545. X          }
  546. X      if (kprocp == NULL)
  547. X                  kprocp = (struct proc *)calloc(nproc, sizeof (struct proc));
  548. X+ # ifndef sun
  549. X          if (usrpt != NULL)
  550. X          return(1);
  551. X      usrpt = (struct pte *)nlst[X_USRPT].n_value;
  552. X      Usrptma = (struct pte *)nlst[X_USRPTMAP].n_value;
  553. X+ # endif
  554. X      if (pt == NULL)
  555. X          pt = (struct p_times *)calloc(nproc, sizeof (struct p_times));
  556. X      lseek(kmem, (long)nlst[X_CPTIME].n_value, L_SET);
  557. X***************
  558. X*** 215,221 ****
  559. X                          continue;
  560. X                  prt->pt_pid = pp->p_pid;
  561. X                  prt->pt_pp = pp;
  562. X!                 prt->pt_pctcpu = pp->p_pctcpu / (1.0 - exp(time * lccpu));
  563. X                  prt->pt_uid = pp->p_uid;
  564. X                  prt++;
  565. X          }
  566. X--- 219,225 ----
  567. X                          continue;
  568. X                  prt->pt_pid = pp->p_pid;
  569. X                  prt->pt_pp = pp;
  570. X!                 prt->pt_pctcpu = FSC(pp->p_pctcpu) / (1.0 - exp(time * lccpu));
  571. X                  prt->pt_uid = pp->p_uid;
  572. X                  prt++;
  573. X          }
  574. END_OF_pigs.c.diff
  575. if test 1715 -ne `wc -c <pigs.c.diff`; then
  576.     echo shar: \"pigs.c.diff\" unpacked with wrong size!
  577. fi
  578. # end of overwriting check
  579. fi
  580. if test -f swap.c.diff -a "${1}" != "-c" ; then 
  581.   echo shar: Will not over-write existing file \"swap.c.diff\"
  582. else
  583. echo shar: Extracting \"swap.c.diff\" \(372 characters\)
  584. sed "s/^X//" >swap.c.diff <<'END_OF_swap.c.diff'
  585. X*** swap.c.orig    Mon Jun 11 15:32:57 1990
  586. X--- swap.c    Tue Jun 12 18:37:35 1990
  587. X***************
  588. X*** 8,13 ****
  589. X--- 8,14 ----
  590. X  static char sccsid[] = "@(#)swap.c    5.4 (Berkeley) 7/20/86";
  591. X  #endif not lint
  592. X  
  593. X+ #ifndef sun
  594. X  #include "systat.h"
  595. X  #include <sys/dir.h>
  596. X  #include <sys/user.h>
  597. X***************
  598. X*** 309,311 ****
  599. X--- 310,313 ----
  600. X      }
  601. X      return (row);
  602. X  }
  603. X+ #endif
  604. END_OF_swap.c.diff
  605. if test 372 -ne `wc -c <swap.c.diff`; then
  606.     echo shar: \"swap.c.diff\" unpacked with wrong size!
  607. fi
  608. # end of overwriting check
  609. fi
  610. if test -f systat.h.diff -a "${1}" != "-c" ; then 
  611.   echo shar: Will not over-write existing file \"systat.h.diff\"
  612. else
  613. echo shar: Extracting \"systat.h.diff\" \(939 characters\)
  614. sed "s/^X//" >systat.h.diff <<'END_OF_systat.h.diff'
  615. X*** systat.h.orig    Mon Jun 11 15:32:57 1990
  616. X--- systat.h    Tue Jun 12 19:02:55 1990
  617. X***************
  618. X*** 13,23 ****
  619. X--- 13,32 ----
  620. X  
  621. X  #include <sys/param.h>
  622. X  #include <sys/file.h>
  623. X+ #ifndef sun
  624. X  #include <sys/dkstat.h>
  625. X+ #else
  626. X+ #include <sys/dk.h>
  627. X+ #endif
  628. X  
  629. X  #include <netinet/in.h>
  630. X  #include <arpa/inet.h>
  631. X  
  632. X+ #ifdef sun
  633. X+ #include <kvm.h>
  634. X+ kvm_t *kvm;
  635. X+ #endif
  636. X+ 
  637. X  struct p_times {
  638. X          short   pt_pid;
  639. X          float   pt_pctcpu;
  640. X***************
  641. X*** 66,72 ****
  642. X--- 75,87 ----
  643. X  struct    text *xtext;
  644. X  
  645. X  double  lccpu;
  646. X+ #ifdef sun
  647. X+ long    avenrun[3];
  648. X+ # define FSC(x) (((double)(x))/FSCALE)    /* floatify avenrun, pctcpu */
  649. X+ #else
  650. X  double    avenrun[3];
  651. X+ # define FSC(x) (x)
  652. X+ #endif
  653. X  
  654. X  char    *kmemf, *memf, *swapf;
  655. X  int    hz, phz;
  656. X***************
  657. X*** 82,89 ****
  658. X--- 97,106 ----
  659. X  #define    TCP    0x1
  660. X  #define    UDP    0x2
  661. X  
  662. X+ #ifndef sun
  663. X  struct  pte *usrpt;
  664. X  struct  pte *Usrptma;
  665. X+ #endif
  666. X  
  667. X  WINDOW  *wnd;
  668. X  int    CMDLINE;
  669. END_OF_systat.h.diff
  670. if test 939 -ne `wc -c <systat.h.diff`; then
  671.     echo shar: \"systat.h.diff\" unpacked with wrong size!
  672. fi
  673. # end of overwriting check
  674. fi
  675. if test -f vmstat.c.diff -a "${1}" != "-c" ; then 
  676.   echo shar: Will not over-write existing file \"vmstat.c.diff\"
  677. else
  678. echo shar: Extracting \"vmstat.c.diff\" \(5660 characters\)
  679. sed "s/^X//" >vmstat.c.diff <<'END_OF_vmstat.c.diff'
  680. X*** vmstat.c.orig    Mon Jun 11 15:32:57 1990
  681. X--- vmstat.c    Tue Jun 12 19:21:38 1990
  682. X***************
  683. X*** 23,29 ****
  684. X--- 23,31 ----
  685. X  #include <sys/dir.h>
  686. X  #include <sys/user.h>
  687. X  #include <sys/proc.h>
  688. X+ #ifndef sun
  689. X  #include <sys/namei.h>
  690. X+ #endif
  691. X  
  692. X  #include <machine/pte.h>
  693. X  
  694. X***************
  695. X*** 81,96 ****
  696. X  #define    X_TK_NOUT    11
  697. X      { "_dk_seek" },
  698. X  #define    X_DK_SEEK    12
  699. X-     { "_nchstats" },
  700. X- #define    X_NCHSTATS    13
  701. X      { "_intrnames" },
  702. X! #define    X_INTRNAMES    14
  703. X      { "_eintrnames" },
  704. X! #define    X_EINTRNAMES    15
  705. X      { "_intrcnt" },
  706. X! #define    X_INTRCNT    16
  707. X      { "_eintrcnt" },
  708. X! #define    X_EINTRCNT    17
  709. X      { "" },
  710. X  };
  711. X  
  712. X--- 83,100 ----
  713. X  #define    X_TK_NOUT    11
  714. X      { "_dk_seek" },
  715. X  #define    X_DK_SEEK    12
  716. X      { "_intrnames" },
  717. X! #define    X_INTRNAMES    13
  718. X      { "_eintrnames" },
  719. X! #define    X_EINTRNAMES    14
  720. X      { "_intrcnt" },
  721. X! #define    X_INTRCNT    15
  722. X      { "_eintrcnt" },
  723. X! #define    X_EINTRCNT    16
  724. X! #ifndef sun
  725. X!     { "_nchstats" },
  726. X! #define    X_NCHSTATS    17
  727. X! #endif
  728. X      { "" },
  729. X  };
  730. X  
  731. X***************
  732. X*** 107,113 ****
  733. X--- 111,119 ----
  734. X      int    dk_busy;
  735. X      long    tk_nin;
  736. X      long    tk_nout;
  737. X+ #ifndef sun
  738. X      struct    nchstats nchstats;
  739. X+ #endif
  740. X      long    nchcount;
  741. X      long    *intrcnt;
  742. X  } s, s1, s2, z;
  743. X***************
  744. X*** 116,124 ****
  745. X  #define sum s.Sum
  746. X  #define sumold s1.Sum
  747. X  #define rate s.Rate
  748. X  #define    nchtotal s.nchstats
  749. X  #define    oldnchtotal s1.nchstats
  750. X! #define oldrate s1.Rate
  751. X  
  752. X  static    char buf[26];
  753. X  static    time_t t;
  754. X--- 122,132 ----
  755. X  #define sum s.Sum
  756. X  #define sumold s1.Sum
  757. X  #define rate s.Rate
  758. X+ #define oldrate s1.Rate
  759. X+ #ifndef sun
  760. X  #define    nchtotal s.nchstats
  761. X  #define    oldnchtotal s1.nchstats
  762. X! #endif
  763. X  
  764. X  static    char buf[26];
  765. X  static    time_t t;
  766. X***************
  767. X*** 275,284 ****
  768. X      mvprintw(PROCSROW, PROCSCOL, "Procs  r  p  d  s  w");
  769. X      mvprintw(GRAPHROW + 1, GRAPHCOL,
  770. X          "|    |    |    |    |    |    |    |    |    |    |");
  771. X! 
  772. X      mvprintw(NAMEIROW, NAMEICOL, "Namei         Sys-cache     Proc-cache");
  773. X      mvprintw(NAMEIROW + 1, NAMEICOL,
  774. X          "    Calls     hits    %%     hits     %%");
  775. X      mvprintw(DISKROW, DISKCOL, "Discs");
  776. X      mvprintw(DISKROW + 1, DISKCOL, "seeks");
  777. X      mvprintw(DISKROW + 2, DISKCOL, "xfers");
  778. X--- 283,293 ----
  779. X      mvprintw(PROCSROW, PROCSCOL, "Procs  r  p  d  s  w");
  780. X      mvprintw(GRAPHROW + 1, GRAPHCOL,
  781. X          "|    |    |    |    |    |    |    |    |    |    |");
  782. X! #ifndef sun
  783. X      mvprintw(NAMEIROW, NAMEICOL, "Namei         Sys-cache     Proc-cache");
  784. X      mvprintw(NAMEIROW + 1, NAMEICOL,
  785. X          "    Calls     hits    %%     hits     %%");
  786. X+ #endif
  787. X      mvprintw(DISKROW, DISKCOL, "Discs");
  788. X      mvprintw(DISKROW + 1, DISKCOL, "seeks");
  789. X      mvprintw(DISKROW + 2, DISKCOL, "xfers");
  790. X***************
  791. X*** 300,307 ****
  792. X--- 309,318 ----
  793. X  
  794. X  #define X(fld)    {t=s.fld[i]; s.fld[i]-=s1.fld[i]; if(state==TIME) s1.fld[i]=t;}
  795. X  #define Y(fld)    {t = s.fld; s.fld -= s1.fld; if(state == TIME) s1.fld = t;}
  796. X+ #ifndef sun
  797. X  #define Z(fld)    {t = s.nchstats.fld; s.nchstats.fld -= s1.nchstats.fld; \
  798. X      if(state == TIME) s1.nchstats.fld = t;}
  799. X+ #endif
  800. X  #define MAXFAIL 5
  801. X  
  802. X  static    char cpuchar[CPUSTATES] = { '=' , '>', '-', ' ' };
  803. X***************
  804. X*** 355,360 ****
  805. X--- 366,372 ----
  806. X          putint(l, intrloc[i], INTSCOL, 8);
  807. X      }
  808. X      putint(inttotal, INTSROW + 1, INTSCOL, 8);
  809. X+ #ifndef sun
  810. X      Z(ncs_goodhits); Z(ncs_badhits); Z(ncs_miss);
  811. X      Z(ncs_long); Z(ncs_pass2); Z(ncs_2passes);
  812. X      s.nchcount = nchtotal.ncs_goodhits + nchtotal.ncs_badhits +
  813. X***************
  814. X*** 361,366 ****
  815. X--- 373,379 ----
  816. X          nchtotal.ncs_miss + nchtotal.ncs_long;
  817. X      if (state == TIME)
  818. X          s1.nchcount = s.nchcount;
  819. X+ #endif
  820. X  
  821. X      psiz = 0;
  822. X      f2 = 0.0;
  823. X***************
  824. X*** 381,389 ****
  825. X      }
  826. X  
  827. X      putint(ucount(), STATROW, STATCOL, 3);
  828. X!     putfloat(avenrun[0], STATROW, STATCOL + 17, 6, 2, 0);
  829. X!     putfloat(avenrun[1], STATROW, STATCOL + 23, 6, 2, 0);
  830. X!     putfloat(avenrun[2], STATROW, STATCOL + 29, 6, 2, 0);
  831. X      mvaddstr(STATROW, STATCOL + 53, buf);
  832. X      putint(total.t_arm/2, MEMROW + 2, MEMCOL + 4, 5);
  833. X      putint(total.t_armtxt/2, MEMROW + 2, MEMCOL + 9, 5);
  834. X--- 394,402 ----
  835. X      }
  836. X  
  837. X      putint(ucount(), STATROW, STATCOL, 3);
  838. X!     putfloat(FSC(avenrun[0]), STATROW, STATCOL + 17, 6, 2, 0);
  839. X!     putfloat(FSC(avenrun[1]), STATROW, STATCOL + 23, 6, 2, 0);
  840. X!     putfloat(FSC(avenrun[2]), STATROW, STATCOL + 29, 6, 2, 0);
  841. X      mvaddstr(STATROW, STATCOL + 53, buf);
  842. X      putint(total.t_arm/2, MEMROW + 2, MEMCOL + 4, 5);
  843. X      putint(total.t_armtxt/2, MEMROW + 2, MEMCOL + 9, 5);
  844. X***************
  845. X*** 409,416 ****
  846. X--- 422,431 ----
  847. X          GENSTATROW + 3, GENSTATCOL, 7);
  848. X      putrate(rate.v_pdma, oldrate.v_pdma, 
  849. X          GENSTATROW + 4, GENSTATCOL, 7);
  850. X+ #ifndef sun                /* ugh!! just leave out!! */
  851. X      putrate(rate.v_soft, oldrate.v_soft, 
  852. X          GENSTATROW + 5, GENSTATCOL, 7);
  853. X+ #endif
  854. X      putrate(rate.v_faults, oldrate.v_faults, 
  855. X          GENSTATROW + 6, GENSTATCOL, 7);
  856. X      putrate(rate.v_scan, oldrate.v_scan, 
  857. X***************
  858. X*** 491,496 ****
  859. X--- 506,512 ----
  860. X                  "  %3.3s", dr_name[i]);
  861. X              dinfo(i, ++c);
  862. X          }
  863. X+ #ifndef sun
  864. X      putint(s.nchcount, NAMEIROW + 2, NAMEICOL, 9);
  865. X      putint(nchtotal.ncs_goodhits, NAMEIROW + 2, NAMEICOL + 9, 9);
  866. X  #define nz(x)    ((x) ? (x) : 1)
  867. X***************
  868. X*** 500,505 ****
  869. X--- 516,522 ----
  870. X      putfloat(nchtotal.ncs_pass2 * 100.0 / nz(s.nchcount),
  871. X         NAMEIROW + 2, NAMEICOL + 34, 4, 0, 1);
  872. X  #undef nz
  873. X+ #endif
  874. X  }
  875. X  
  876. X  cmdkre(cmd, args)
  877. X***************
  878. X*** 640,647 ****
  879. X--- 657,666 ----
  880. X      read(kmem, s->dk_seek, dk_ndrive * sizeof (long));
  881. X      s->tk_nin = getw(name[X_TK_NIN].n_value);
  882. X      s->tk_nout = getw(name[X_TK_NOUT].n_value);
  883. X+ #ifndef sun
  884. X      lseek(kmem, (long)name[X_NCHSTATS].n_value,  L_SET);
  885. X      read(kmem, &s->nchstats, sizeof s->nchstats);
  886. X+ #endif
  887. X      lseek(kmem, (long)name[X_INTRCNT].n_value,  L_SET);
  888. X      read(kmem, s->intrcnt, nintr * sizeof (long));
  889. X  }
  890. END_OF_vmstat.c.diff
  891. if test 5660 -ne `wc -c <vmstat.c.diff`; then
  892.     echo shar: \"vmstat.c.diff\" unpacked with wrong size!
  893. fi
  894. # end of overwriting check
  895. fi
  896. echo shar: End of shell archive.
  897. exit 0
  898.